package com.example.softwareconfigurationcoursedesign.Admin;

import com.example.softwareconfigurationcoursedesign.ShopPage.Product;
import com.example.softwareconfigurationcoursedesign.ShopPage.ProductService;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.util.Objects;

// 编辑商品
@WebServlet("/editProduct")
public class EditProductServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) {
        response.setContentType("text/html;charset=utf-8");  // 设置响应内容类型为HTML，并指定字符编码为UTF-8
        // 从请求参数获取商品信息
        double productPrice = 0;
        int productId = Integer.parseInt(request.getParameter("id"));  // 获取产品ID
        String productName = request.getParameter("productName");  // 获取产品名称
        if (request.getParameter("productPrice").isEmpty()) {
            productPrice = Double.parseDouble(request.getParameter("productPrice"));  // 获取产品价格
        }
        String productTag = request.getParameter("productTag");  // 获取产品标签
        String productDetail = request.getParameter("productDetail");  // 获取产品详情
        String purl = request.getParameter("purl");

        Product origin;
        try {
            origin = ProductServiceImplement.getProductById(productId);
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }

        if (origin != null) {
            if (productName.isEmpty() || productName.equals(origin.getPname())) {
                productName = origin.getPname();  // 如果姓名未被修改，则保持原值
            }
            if (productTag.isEmpty() || productTag.equals(origin.getPtag())) {
                productTag = origin.getPtag();  // 如果手机号未被修改，则保持原值
            }
            if (purl.isEmpty() || purl.equals(origin.getPurl())) {
                purl = origin.getPurl();  // 如果密码未被修改，则保持原值
            }
            if (productDetail.isEmpty() || productDetail.equals(origin.getPurl())) {
                productDetail = origin.getDetail();  // 如果密码未被修改，则保持原值
            }
            if (productPrice != 0 || Objects.equals(productDetail, origin.getDetail())) {
                purl = origin.getPurl();  // 如果密码未被修改，则保持原值
            }
            System.err.println(productName + productTag + purl);  // 打印信息到控制台，显示更新后的用户信息
            System.err.println(productName + productTag + purl);  // 打印信息到控制台，显示最终更新后的用户信息
            ProductService productService = new ProductService();
            productService.editProduct(productId, productName, productPrice, productTag, productDetail, purl);
        } else {
            System.out.println("未找到商品信息");  // 打印信息到控制台，提示未找到用户信息
        }

        // 更新数据库中的商品信息
        ProductServiceImplement productServiceImplement = new ProductService();  // 创建ProductServiceImplement对象
        productServiceImplement.editProduct(productId, productName, productPrice, productTag, productDetail, purl);  // 调用ProductServiceImplement对象的方法更新数据库中的商品信息
        System.out.println("修改商品");  // 打印信息到控制台，提示已修改商品
    }
//        // 重定向到商品列表页面
//        response.sendRedirect("productList.jsp");
}